package main.java.com.extract.supers;

/**
 * @description: 提炼超类
 * @author: cong zhi
 * @createDate: 2022/6/14 8:04
 * @updateUser: cong zhi
 * @updateDate: 2022/6/14 8:04
 * @updateRemark: 修改内容
 * @version: v1.0
 */
public abstract class Party {

    /**
     * 将name字段上移至此类；通常会将这个字段声明为private
     */
    private String name;

    /**
     * 在此之前，需要先使用 Pull Up Constructor Body，这样才对name正确赋值
     * @param name
     */
    protected Party(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    /**
     * 将子类相同名称函数声明为抽象函数
     * @return
     */
    public abstract int getAnnualCost();
}
